package com.das.mechanic_base.mapi.api;

import com.das.mechanic_base.adapter.create.AddStaffBean;
import com.das.mechanic_base.base.X3BaseCallModel;
import com.das.mechanic_base.bean.alone.AloneNewBean;
import com.das.mechanic_base.bean.alone.AloneTitleBean;
import com.das.mechanic_base.bean.alone.AloneTyreBean;
import com.das.mechanic_base.bean.alone.DashboardWarnBean;
import com.das.mechanic_base.bean.alone.NewServiceHeaderBean;
import com.das.mechanic_base.bean.alone.PictureRecogintionResultBean;
import com.das.mechanic_base.bean.alone.PictureRecognitionBean;
import com.das.mechanic_base.bean.alone.SearchBean;
import com.das.mechanic_base.bean.alone.ServiceHeaderBean;
import com.das.mechanic_base.bean.alone.TestRecommendBean;
import com.das.mechanic_base.bean.alone.UnCompleteBean;
import com.das.mechanic_base.bean.app.BrandMechanicBean;
import com.das.mechanic_base.bean.app.HeartBeatTokenBean;
import com.das.mechanic_base.bean.camera.TagDetectionBean;
import com.das.mechanic_base.bean.car.CarCodeBean;
import com.das.mechanic_base.bean.common.AwsFileBean;
import com.das.mechanic_base.bean.common.DeleteVideoBean;
import com.das.mechanic_base.bean.common.GenerateLiveBean;
import com.das.mechanic_base.bean.common.UploadVideoBean;
import com.das.mechanic_base.bean.create.MapReceiveStatusBean;
import com.das.mechanic_base.bean.create.QuesSystemSnBean;
import com.das.mechanic_base.bean.create.SaveWorkSuccessBean;
import com.das.mechanic_base.bean.create.SelectWorkBean;
import com.das.mechanic_base.bean.create.ServiceInfoBean;
import com.das.mechanic_base.bean.create.StaffListBean;
import com.das.mechanic_base.bean.crm.CrmMoreBean;
import com.das.mechanic_base.bean.crm.MartTopForCarBena;
import com.das.mechanic_base.bean.custrecord.AloneDetectionBean;
import com.das.mechanic_base.bean.custrecord.DetectionImageBean;
import com.das.mechanic_base.bean.custrecord.RecordTempBean;
import com.das.mechanic_base.bean.greendao.AloneServiceListBean;
import com.das.mechanic_base.bean.greendao.AloneServiceNewBean;
import com.das.mechanic_base.bean.ground.GetCarAfterBean;
import com.das.mechanic_base.bean.ground.GetDateTimeBean;
import com.das.mechanic_base.bean.ground.UserCarInfoBean;
import com.das.mechanic_base.bean.ground.WorkCaptureBean;
import com.das.mechanic_base.bean.im.AdminServiceBean;
import com.das.mechanic_base.bean.im.AdminServiceInfoBean;
import com.das.mechanic_base.bean.im.IMGetUserDataBen;
import com.das.mechanic_base.bean.little.LittleAssistantBean;
import com.das.mechanic_base.bean.live.FetchLiveBean;
import com.das.mechanic_base.bean.live.LiveAtomicNumBean;
import com.das.mechanic_base.bean.live.LiveCarListBean;
import com.das.mechanic_base.bean.live.LiveCloseBean;
import com.das.mechanic_base.bean.live.LiveRoomDetailBean;
import com.das.mechanic_base.bean.live.LiveScanBean;
import com.das.mechanic_base.bean.live.LiveSelectCarBean;
import com.das.mechanic_base.bean.live.UpdateLiveStatusBean;
import com.das.mechanic_base.bean.login.AreaBean;
import com.das.mechanic_base.bean.login.RegisterErrorBean;
import com.das.mechanic_base.bean.login.UnitDefaultBean;
import com.das.mechanic_base.bean.main.AloneThingBean;
import com.das.mechanic_base.bean.main.AppointClueBean;
import com.das.mechanic_base.bean.main.BottomShowBean;
import com.das.mechanic_base.bean.main.CarBodyTextBean;
import com.das.mechanic_base.bean.main.CarBrandAndCommonBean;
import com.das.mechanic_base.bean.main.CarBrandBean;
import com.das.mechanic_base.bean.main.CarDriLicBean;
import com.das.mechanic_base.bean.main.CarNewTypeBean;
import com.das.mechanic_base.bean.main.CarNumRecognitionBean;
import com.das.mechanic_base.bean.main.CarOwnerDaoBean;
import com.das.mechanic_base.bean.main.CarPicAndColorBean;
import com.das.mechanic_base.bean.main.CarPoolMainBean;
import com.das.mechanic_base.bean.main.CarStyleBean;
import com.das.mechanic_base.bean.main.CarTyreAloneBean;
import com.das.mechanic_base.bean.main.CheckNetBean;
import com.das.mechanic_base.bean.main.CrmCarQuetionBean;
import com.das.mechanic_base.bean.main.CrmCarSearchBean;
import com.das.mechanic_base.bean.main.CrmCustomSearchBean;
import com.das.mechanic_base.bean.main.CrmSearchBean;
import com.das.mechanic_base.bean.main.DetailByCarBrandAndQuestionBean;
import com.das.mechanic_base.bean.main.DetectionBean;
import com.das.mechanic_base.bean.main.DetectionNewBean;
import com.das.mechanic_base.bean.main.DetectionRankBean;
import com.das.mechanic_base.bean.main.DetectionRankInfo;
import com.das.mechanic_base.bean.main.DoneDetectionBean;
import com.das.mechanic_base.bean.main.GiftBalanceBean;
import com.das.mechanic_base.bean.main.GiftBalanceSubmitBean;
import com.das.mechanic_base.bean.main.GiftBalanceSuccessBean;
import com.das.mechanic_base.bean.main.HomeBodyItemBean;
import com.das.mechanic_base.bean.main.HomeCarBean;
import com.das.mechanic_base.bean.main.HomeColorBean;
import com.das.mechanic_base.bean.main.HomeMainCarBean;
import com.das.mechanic_base.bean.main.HomeNewColorBean;
import com.das.mechanic_base.bean.main.HomeSetStatusBean;
import com.das.mechanic_base.bean.main.HomeUserBean;
import com.das.mechanic_base.bean.main.MainDaysAndMobileBean;
import com.das.mechanic_base.bean.main.MapCarBrandBean;
import com.das.mechanic_base.bean.main.NewCompleteTaskBean;
import com.das.mechanic_base.bean.main.NewTaskBean;
import com.das.mechanic_base.bean.main.ReceiveStatusBean;
import com.das.mechanic_base.bean.main.ShowCarOrderBean;
import com.das.mechanic_base.bean.main.StaffBean;
import com.das.mechanic_base.bean.main.UpadateReceBean;
import com.das.mechanic_base.bean.main.UpdateReceiveCarBean;
import com.das.mechanic_base.bean.main.UseAppBean;
import com.das.mechanic_base.bean.main.UserBillBean;
import com.das.mechanic_base.bean.main.UserBodyBean;
import com.das.mechanic_base.bean.main.ValidCarBean;
import com.das.mechanic_base.bean.main.VinResultBean;
import com.das.mechanic_base.bean.main.VlideCarNumBean;
import com.das.mechanic_base.bean.maintain.AdvanceTimeBean;
import com.das.mechanic_base.bean.maintain.CancelWorkBean;
import com.das.mechanic_base.bean.maintain.MainTainPlanBean;
import com.das.mechanic_base.bean.maintain.UpdateMainTainPlan;
import com.das.mechanic_base.bean.maintain.WorkBaseHeaderBean;
import com.das.mechanic_base.bean.plan.PlanListBean;
import com.das.mechanic_base.bean.processsive.ProcessNewBean;
import com.das.mechanic_base.bean.processsive.ProcessSBean;
import com.das.mechanic_base.bean.processsive.ProcessSiveTempLetBean;
import com.das.mechanic_base.bean.processsive.ProcessSnBean;
import com.das.mechanic_base.bean.record.ReceiveListBean;
import com.das.mechanic_base.bean.record.RecordKeyBean;
import com.das.mechanic_base.bean.register.MsgBean;
import com.das.mechanic_base.bean.register.RegisterAndLoginBean;
import com.das.mechanic_base.bean.register.RegisterBean;
import com.das.mechanic_base.bean.task.FollowCarAllBean;
import com.das.mechanic_base.bean.task.SaveTodoBean;
import com.das.mechanic_base.bean.verison.ChangeVersion;
import com.das.mechanic_base.bean.visit.VisitPhoneBean;
import com.das.mechanic_base.bean.visit.VisitTextBean;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

/**
 * Created by chenSi on 2018/3/16.
 */

public interface ApiService {
    /**
     * 获取app版本号做强制更新
     */
    @GET("auth/getLatestAppVersion")
    Observable<X3BaseCallModel<ChangeVersion>> obtainLatestAppVersion(@Query("platform") String platform, @Query("product") String product);

    /**
     * 员工注册前进行校验
     *
     * @param registerBean
     * @return
     */
    @POST("auth/preRegisterByRegistrationCode")
    Observable<X3BaseCallModel<RegisterErrorBean>> obtainPreRegister(@Body RegisterBean registerBean);

    /**
     * 获取区号
     * @return
     */
    @GET("valid/showAreaCode")
    Observable<X3BaseCallModel<List<AreaBean>>> showAreaCode();

    /**
     * 获取默认的里程和货币单位
     * @return
     */
    @GET("valid/getDefaultCurrencySymbolAndMileageUnit")
    Observable<X3BaseCallModel<UnitDefaultBean>> getDefaultUnit();

    /**
     * 发送短信验证码
     *
     * @param registerBean
     * @return
     */
    @POST("valid/sendSmsCode")
    Observable<X3BaseCallModel<MsgBean>> obtainSmsCode(@Body RegisterBean registerBean);

    /**
     * 员工正式注册技师端app
     *
     * @param registerBean
     * @return
     */
    @POST("auth/registerAndLoginByRegistrationCode")
    Observable<X3BaseCallModel<RegisterAndLoginBean>> obtainRegister(@Body RegisterBean registerBean);

    /**
     * 员工修改手机号
     *
     * @param registerBean
     * @return
     */
    @POST("auth/modifyMobile")
    Observable<X3BaseCallModel<Object>> obtainAlterPhone(@Body RegisterBean registerBean);

    /**
     * 修改员工头像
     *
     * @param man
     * @param id
     * @return
     */
    @POST("auth/modifyImg")
    Observable<X3BaseCallModel<Object>> obtainAlterHeader(@Query("gender") String man, @Query("resourceId") long id);

    /**
     * 用户登录
     *
     * @param registerBean
     * @return
     */
    @POST("auth/login")
    Observable<X3BaseCallModel<RegisterAndLoginBean>> obtainLogin(@Body RegisterBean registerBean);

    /**
     * 用户退出
     *
     * @return
     */
    @POST("auth/logout")
    Observable<X3BaseCallModel<Object>> obtainLogout();

    /**
     * @param userId 来获取技师userSig
     */
    @GET("circleMessage/generateUserSig/{userId}")
    Observable<X3BaseCallModel<Object>> generateUserSig(@Path("userId") String userId);

    /**
     * 注册期间 获取验证码的时候需要校验验证码是否可用
     * @param areaCode
     * @param mobile
     * @return
     */
    @POST("auth/validMobileForRegister")
    Observable<X3BaseCallModel<RegisterErrorBean>> validMobileForRegister(@Query("areaCode")String areaCode, @Query("mobile")String mobile);

    /**
     * 重置密码之前 获取验证码之前 需要验证手机号
     * @param
     * @return
     */
    @GET("auth/validMobileForRestPassword")
    Observable<X3BaseCallModel<RegisterErrorBean>> validMobileForPwd(@Query("areaCode")String areaCode, @Query("mobile")String mobile);

    /**
     * 重置密码
     *
     * @param registerBean
     * @return
     */
    @POST("auth/resetPassword")
    Observable<X3BaseCallModel<Object>> obtainResetPassword(@Body RegisterBean registerBean);

    /**
     * 注册前校验验证码
     * @return
     */
    @POST("auth/validSMSCodeForApp")
    Observable<X3BaseCallModel<RegisterErrorBean>> verifyMsgCode(@Body RegisterBean registerBean);

    /**
     * 重置密码前校验验证码
     * @param registerBean
     * @return
     */
    @POST("auth/validSmsCodeForRestPassword")
    Observable<X3BaseCallModel<RegisterErrorBean>> varifyResetPwdCode(@Body RegisterBean registerBean);

    /**
     * 获取浮窗
     */
    @GET("mechanic/getNotWorkedBaseByStaffBaseId2")
    Observable<X3BaseCallModel<List<BottomShowBean>>> obtainStaffBaseWork();

    /**
     * 获取浮窗
     */
    @GET("mechanic/getNotWorkedBaseByStaffBaseId2")
    Observable<X3BaseCallModel<List<BottomShowBean>>> obtainStaffBaseWork(@Query("ifToday")boolean ifToday);

    /**
     * 请求当前登录的用户的信息
     *
     * @returngetStaffInfo
     */
    @GET("mechanic/getStaffInfo2")
    Observable<X3BaseCallModel<StaffBean>> obtainStaffInfoBean();

    /**
     * 获取施工详情及技师信息
     * @param id
     * @return
     */
    @GET("mechanic/getWorkBaseHeadInfo")
    Observable<X3BaseCallModel<WorkBaseHeaderBean>> getWorkBaseHeader(@Query("id")long id);

    /**
     * 校验技师是否串工位
     *
     * @param id
     * @return
     */
    @GET("mechanic/getWorkBaseValidate")
    Observable<X3BaseCallModel<Boolean>> obtainWorkBaseValidate(@Query("id") long id);

    /**
     * 删除自定义工序
     * @return
     */
    @POST("mechanic/delWorkProcedureStep")
    Observable<X3BaseCallModel<Object>> delWorkStep(@Query("procedureTempletSn")String procedureTempletSn, @Query("serviceBaseSn")String serviceBaseSn,
                                                    @Query("workBaseId")int workBaseId);

    /**
     * 施工完毕
     * @param id
     * @return
     */
    @GET("mechanic/completeWorkBase")
    Observable<X3BaseCallModel<Object>> obtainCompleteWork(@Query("id") long id);

    /**
     * 单人精检 双人精检  新改版
     *
     * @param workBaseId
     * @return
     */
    @GET("mechanic/check")
    Observable<X3BaseCallModel<List<AloneTitleBean>>> obtainCheck(@Query("workBaseId") long workBaseId);

    /**
     * 根据工序id和所属类目查询题目 新版本
     *
     * @param
     * @param
     * @return
     */
    @POST("mechanic/getProcedureQuestionListByProcedureTempletIdAndToSystem2")
    Observable<X3BaseCallModel<AloneNewBean>> obtainAloneBean(@Query("workBaseId") long workBaseId, @Query("questionDetectionTempletSystemId") long questionDetectionTempletSystemId);

    @GET("mechanic/getAllTyreParameter")
    Observable<X3BaseCallModel<List<AloneTyreBean>>> obtainAllTyreParameter();

    /**
     * 提交精检信息  -- 新改版
     *
     * @param workBaseId
     * @param aloneBeans
     * @return
     * @Param
     */
    @POST("mechanic/saveWorkProcedureQuestionList")
    Observable<X3BaseCallModel<Object>> obtainQuestionList(@Query("workBaseId") long workBaseId, @Body List<AloneNewBean.ItemQuestionListBean> aloneBeans,
                                                           @Query("evaluation") String evaluation, @Query("evaluationSoundId") long soundId);

    /**
     * 查看可以取消的服务项目
     *
     * @param workBaseId
     * @return
     */
    @GET("mechanic/listReceiveVariant")
    Observable<X3BaseCallModel<List<CancelWorkBean>>> obtainListReceive(@Query("workBaseId") long workBaseId);

    /**
     * 确认取消施工
     *
     * @param
     * @return
     */
    @POST("mechanic/updateReceiveVariantWorkStatusCancel")
    Observable<X3BaseCallModel<Object>> obtainCancelWork(@Body List<Long> idList);

    /**
     * 确认提前施工
     *
     * @param workBaseId
     * @return
     */
    @POST("mechanic/updateWorkBaseStartTime")
    Observable<X3BaseCallModel<AdvanceTimeBean>> obtainUpdateStartTime(@Query("workBaseId") long workBaseId);

    /**
     * 车主置顶（或取消置顶）
     * @return
     */
    @POST("mechanic/user/markTopForCarOwnerUser")
    Observable<X3BaseCallModel<Object>> markTopForCarOwnerUser(@Body MartTopForCarBena martTopForCarBena);

    /**
     * 车辆置顶（或取消置顶）
     * @return
     */
    @POST("mechanic/car/markTopForCar")
    Observable<X3BaseCallModel<Object>> markTopForCar(@Body MartTopForCarBena martTopForCarBena);

    /**
     * 添加星标
     * @param carownerUserId
     * @param harMark
     * @return
     */
    @POST("followup/saveHasMark")
    Observable<X3BaseCallModel<Object>> saveHasMark(@Query("carOwnerUserId") long carownerUserId, @Query("harMark") boolean harMark);


    /**
     * 添加星标 车辆
     * @param harMark
     * @return
     */
    @POST("followup/saveHasMarkForCar")
    Observable<X3BaseCallModel<Object>> saveHasMarkForCar(@Query("carId") long carId, @Query("harMark") boolean harMark);

    /**
     * 查看当前车主的全部车辆
     */
    @GET("followup/getCarListByCarownerUserId2")
    Observable<X3BaseCallModel<List<UserCarInfoBean>>> getCarList(@Query("carOwnerUserId") long carOwnerUserId);

    /**
     * 获取技师信息
     *
     * @return
     */
    @GET("profile/getMechanicPosterInfo")
    Observable<X3BaseCallModel<UserBillBean>> getMechicPoternInfo();

    /**
     * 获取一级服务类目+二级服务类目+服务项目  questionOptionId
     * @return
     */
    @GET("mechanic/getServiceBaseListInfo")
    Observable<X3BaseCallModel<List<ServiceHeaderBean>>> showServiceBaseListInfo(@QueryMap Map<String,Object> map);

    /**
     * 获取自定义工序
     *
     * @return
     */
    @GET("mechanic/listProcedureTempletSelf")
    Observable<X3BaseCallModel<List<RecordTempBean>>> requstListProcedureTemp();

    /**
     * 上传标准工序/非标图片
     *
     * @param workBaseId
     * @return
     */
    @POST("mechanic/saveWorkProcedureStepList2")
    Observable<X3BaseCallModel<Object>> saveWorkStepList(@Body List<ProcessSBean> procedureTempletEntityList, @Query("workBaseId") int workBaseId);

    /**
     * 上传标准工序/非标图片 一张一张上传
     * @return
     */
    @POST("mechanic/saveOrUpdateWorkProcedureStep")
    Observable<X3BaseCallModel<String>> saveOrUpdateStep(@Query("procedureTempletSn")String procedureTempletSn, @Query("resourceId")long resourceId,
                                                         @Query("serviceBaseSn")String serviceBaseSn, @Query("standardOrNot")boolean standardOrNot,
                                                         @Query("workBaseId")int workBaseId);

    /**
     * 新版查看工序工艺 （标准/非标）
     *
     * @param procedureIds
     * @return
     */
    @GET("mechanic/getProcedureTemplet")
    Observable<X3BaseCallModel<List<ProcessSnBean>>> obtainProcedureTemplist(@Query("technicTempletSns[]") String[] procedureIds, @Query("workBaseId") int workBaseId, @Query("standardOrNot") boolean standardOrNot, @Query("serviceBaseSn") String serviceBaseSn);

    /**
     * 上传工序之前效验
     *
     * @param technicsSn
     * @param workBaseId
     * @return
     */
    @POST("mechanic/validBeforeSaveWorkProcedureStepList")
    Observable<X3BaseCallModel<Boolean>> validProceStep(@Query("serviceBaseSn") String technicsSn, @Query("workBaseId") long workBaseId);

    /**
     * 根据图片识别车牌号
     * @param file
     * @return
     */
    @Multipart
    @POST("mechanic/receive/plateNumRecognition")
    Observable<X3BaseCallModel<String>> requestCarNum(@Part MultipartBody.Part file);

    /**
     * 根据图片识别行驶证
     * @param file
     * @return
     */
    @Multipart
    @POST("mechanic/receive/vehicleLicenseRecognize")
    Observable<X3BaseCallModel<CarDriLicBean>> vehicleLicenseRecognize(@Part MultipartBody.Part file);

    /**
     * 根据车牌号校验车辆信息
     * @param carNum
     * @return
     */
    @POST("mechanic/receive/validCarReceive")
    Observable<X3BaseCallModel<ValidCarBean>> validCarInfo(@Query("carNum")String carNum);

    /**
     * 添加接车单
     * @param carNum
     * @return
     */
    @POST("mechanic/receive/saveReceiveBase")
    Observable<X3BaseCallModel<UpdateReceiveCarBean>> saveReceiveBase(@Query("carNum")String carNum);

    /**
     * 删除接车单
     * @param receiveId
     * @return
     */
    @POST("mechanic/receive/deleteReceiveBase")
    Observable<X3BaseCallModel<Object>> deleteReceiveBase(@Query("id")long receiveId);

    /**
     * 根据图片识别vin
     */
    @Multipart
    @POST("mechanic/receive/vinRecognition")
    Observable<X3BaseCallModel<String>>  vinRecognition(@Part MultipartBody.Part file);

    /**
     * 客户机会
     * @return
     */
    @POST("mechanic/user/pageUserForMechainc")
    Observable<X3BaseCallModel<HomeUserBean>> requestUserForMechanic(@Body UserBodyBean bodyBean);

    /**
     * 更新接车单车辆信息
     * @param receiveCarBean
     * @return
     */
    @POST("mechanic/receive/updateReceiveBaseForCar")
    Observable<X3BaseCallModel<UpadateReceBean>> updateReceiveCar(@Body UpdateReceiveCarBean receiveCarBean);

    /**
     * 请求车辆列表
     * @param
     * @return
     */
    @POST("mechanic/car/pageCarForMechanicV2")
    Observable<X3BaseCallModel<HomeCarBean>> requestCarForMechanic(@Body UserBodyBean bodyBean);

    /**
     * 请求该接车单中的车辆信息
     * @param id
     * @return
     */
    @GET("mechanic/receive/getReceiveBase")
    Observable<X3BaseCallModel<HomeMainCarBean>> getReceiveBase(@Query("id")long id);

    /**
     * 根据车牌号获取品牌等信息
     * @return
     */
    @POST("mechanic/receive/carNumRecognition")
    Observable<X3BaseCallModel<CarNumRecognitionBean>> getCarNumRecognition(@Query("carNum")String carNum);

    /**
     * 预约到店
     */
    @POST("mechanic/user/saveCarowneruserCommunicationForAppointmentClue")
    Observable<X3BaseCallModel<Object>> saveForAppointClue(@Body AppointClueBean appointClueBean);

    /**
     * 电话回访
     * @param carOwnerDaoBean
     * @return
     */
    @POST("mechanic/user/saveCarowneruserCommunicationForMobile")
    Observable<X3BaseCallModel<Object>> saveCommunicationForMobile(@Body CarOwnerDaoBean carOwnerDaoBean);

    /**
     * 微信回访
     * @param carOwnerDaoBean
     * @return
     */
    @POST("mechanic/user/saveCarowneruserCommunicationForWechat")
    Observable<X3BaseCallModel<Object>> saveCommunicationForWechat(@Body CarOwnerDaoBean carOwnerDaoBean);

    /**
     * 保存待办信息
     * @return
     */
    @POST("todoList/saveToDo")
    Observable<X3BaseCallModel<Object>> saveToDo(@Body SaveTodoBean saveTodoBean);

    /**
     * 更新待办信息
     * @return
     */
    @POST("todoList/updateToDo")
    Observable<X3BaseCallModel<Object>> updateToDo(@Body SaveTodoBean saveTodoBean);

    /**
     * 完成待办事项
     */
    @POST("todoList/completeToDo")
    Observable<X3BaseCallModel<Object>> completeToDo(@Query("id")long id);

    /**
     * 查看待办事项
     * @param id
     * @return
     */
    @GET("todoList/getToDo")
    Observable<X3BaseCallModel<SaveTodoBean>> getToDo(@Query("id")long id);

    /**
     * 取消完成待办事项
     * @param id
     * @return
     */
    @POST("todoList/cancelCompleteToDo")
    Observable<X3BaseCallModel<Object>> cancelCompleteToDo(@Query("id")long id);

    /**
     * 查询自己关联的客户
     * @param keyWord
     * @param pageNum
     * @param pageSize
     * @return
     */
    @GET("todoList/pageFollowCarOwnerUser")
    Observable<X3BaseCallModel<FollowCarAllBean>> pageCarOwnerUser(@Query("keyWord")String keyWord, @Query("pageNum")int pageNum, @Query("pageSize")int pageSize);

    /**
     * 获取全部车辆
     * @return
     */
    @GET("mechanic/car/showCarBrand")
    Observable<X3BaseCallModel<List<MapCarBrandBean>>> showCarBrand();

    /**
     * 全部年款-(先选车品牌)
     * @return
     */
    @GET("mechanic/car/showCarStyle")
    Observable<X3BaseCallModel<List<MapCarBrandBean>>> showCarStyle(@Query("carBrandId")int carBrandId );

    /**
     * 全部里程范围-选择
     * @return
     */
    @GET("mechanic/car/showCarMileRange")
    Observable<X3BaseCallModel<List<CarBrandBean>>> showCarMileRange();

    /**
     * 车龄
     * @return
     */
    @GET("mechanic/car/showCarAgeRange")
    Observable<X3BaseCallModel<List<CarBrandBean>>> showCarAgeRange();

    /**
     * 获取年内接通次数
     * @param carOwnerUserId
     * @return
     */
    @GET("mechanic/user/getMobileVisitConnectAmount")
    Observable<X3BaseCallModel<Integer>> getMobileAmount(@Query("carOwnerUserId")long carOwnerUserId);

    /**
     * 查看可预约时间段,返回全部时间段，并标注哪个是可预约的
     * @param day 时间段 例如： 2019-12-9
     * @return  时间段
     */
    @GET("followup/getAppointTimeRange2")
    Observable<X3BaseCallModel<List<GetDateTimeBean>>> getAppointTimeRange2(@Query("day")String day);

    /**
     * 话术列表
     * @return
     */
    @GET("community/listWordsTemplet")
    Observable<X3BaseCallModel<List<LittleAssistantBean>>> getLittleAssistantData();

    /**
     * Im 跳转标记回访获取信息
     * @return
     */
    @GET("community/getMobileVisitConnectAmount")
    Observable<X3BaseCallModel<IMGetUserDataBen>> getMobileVisit(@Query("timIdentifier")String timIdentifier);


    /**
     * 通过手机号获取头像，姓名，等信息
     * @return
     */
    @GET("community/getCarOwnerUserByMobile")
    Observable<X3BaseCallModel<VisitPhoneBean>> getCarOwnerUserByMobile(@Query("mobile")String mobile, @Query("areaCode")String areaCode);

    /**
     * 获取微信回访电话回访记录-- 聊天列表适用
     * @return
     */
    @GET("community/listCommunication")
    Observable<X3BaseCallModel<List<VisitTextBean>>> listCommunication(@Query("carOwnerUserId")int carOwnerUserId);

    /**
     * 技师app 查看待办事项 -- 更新已读状态
     * @param id
     * @return
     */
    @POST("todoList/updateToDoRead")
    Observable<X3BaseCallModel<Object>> updateToDoRead(@Query("id")int id);

    /**
     * 接车单：获取全部车辆包含热门常用品牌
     * @return
     */
    @GET("mechanic/receive/showCarBrandAndCommonUse")
    Observable<X3BaseCallModel<CarBrandAndCommonBean>> showCarBrandAndCommonUse();

    /**
     * 接车单：获取对应的车款
     * @return
     */
    @GET("mechanic/receive/showCarStyle")
    Observable<X3BaseCallModel<List<CarBrandBean>>> receiveShowCarStyle(@Query("carBrandId")long carBrandId);

    /**
     * 接车单：获取对应全部车型
     * @return
     */
    @GET("mechanic/receive/showCarType")
    Observable<X3BaseCallModel<List<CarNewTypeBean>>> receiveShowCarType(@Query("carStyleId")long carStyleId);

    /**
     * 接车单：获取对应汽车的颜色
     * @return
     */
    @GET("mechanic/receive/showCarColor")
    Observable<X3BaseCallModel<List<HomeNewColorBean>>> receiveShowCarColor(@Query("carTypeId")int carTypeId, @Query("carId")int carId);

    /**
     * 技师app 赠送余额-赠送前
     * @param carOwnerUserId
     * @return
     */
    @POST("credit/present/getCreditPresentInfo")
    Observable<X3BaseCallModel<GiftBalanceBean>> getCreditPresentInfo(@Query("carOwnerUserId")long carOwnerUserId);

    /**
     * 赠送余额-确认赠送
     * @return
     */
    @POST("credit/present/saveCreditPresent")
    Observable<X3BaseCallModel<GiftBalanceSuccessBean>> saveCreditPresent(@Body GiftBalanceSubmitBean giftBalanceSubmitBean);

    /**
     * 精检保存或者删除图片 一张一张上传
     * @return
     */
    @POST("mechanic/saveOrUpdateWorkProcedureQuestionResource_V211221")
    Observable<X3BaseCallModel<String>> saveOrUpdateWorkResource(@Query("questionDetectionTempletItemId")long questionDetectionTempletItemId,
                                                                 @Query("resourceId") long resourceId, @Query("soundId")long soundId, @Query("workBaseId")long workBaseId,@Query("remove")boolean remove);

    /**
     * 保存精检推荐服务
     */
    @POST("mechanic/saveDetectionTouchServiceList")
    Observable<X3BaseCallModel<Object>> saveDetectionServiceList(@Body List<AloneServiceListBean> mList, @Query("workBaseId")long workBaseId);


    /**
     * 获取全部录音
     * @return
     */
    @GET("sound/listSound")
    Observable<X3BaseCallModel<List<RecordKeyBean>>> listSound();

    /**
     * 删除录音
     * @param id
     * @return
     */
    @POST("sound/delSound")
    Observable<X3BaseCallModel<Object>> delSound(@Query("id")long id);

    /**
     * 录音开始 获取key
     */
    @POST("sound/saveSound")
    Observable<X3BaseCallModel<RecordKeyBean>> saveSound();

    /**
     * 获取接车单列表
     * @return
     */
    @GET("sound/listReceiveBase")
    Observable<X3BaseCallModel<List<ReceiveListBean>>> listReceiveBase(@QueryMap Map<String,String> map);

    /**
     * 多个录音关联接车单
     * @return
     */
    @POST("sound/relevanceReceiveBase")
    Observable<X3BaseCallModel<Object>> relevanceReceiveBase(@Query("receiveBaseId")long receiveBaseId, @Body List<RecordKeyBean> soundBaseIdList);

    /**
     * 展示全部时段
     */
    @GET("sound/showDuration")
    Observable<X3BaseCallModel<List<HomeColorBean>>> showDuration();

    /**
     * 上传录音之前校验
     * @return
     */
    @GET("sound/validBeforeRelevanceReceiveBase")
    Observable<X3BaseCallModel<List<String>>> validUploadReceiveBase(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 上传头像
     * @return
     */
    @POST("mechanic/receive/updateCarOwnerUserPortrait")
    Observable<X3BaseCallModel<String>> updateCarOwnerUserPortrait(@Query("carId")long carId, @Query("resourceId")long resourceId);

    /**
     * 展示货币切换下拉
     * @return
     */
    @GET("auth/showCurrencySymbol")
    Observable<X3BaseCallModel<List<HomeColorBean>>> showCurrency();

    /**
     * 显示车辆lottie
     * @return
     */
    @GET("mechanic/car/getCarForMechanic")
    Observable<X3BaseCallModel<com.das.mechanic_base.bean.ground.CarPropertiesBean>> getCarForMechanic(@Query("carId")long carId);

    /**
     * 刷新检测报告的审核结果
     * 返回 true  即为审核成功
     * @return
     */
    @GET("mechanic/getWorkBaseReportStatus")
    Observable<X3BaseCallModel<Boolean>> getWorkBaseReportStatus(@Query("id")long id);

    /**
     * 展示车款缩略图
     * @return
     */
    @GET("mechanic/car/showCarPicAndColor")
    Observable<X3BaseCallModel<List<CarPicAndColorBean>>> showCarPicAndColor(@QueryMap Map<String,Object> map);

    /**
     * 获取保养计划到期列表
     * @return
     */
    @GET("notification/pageNotificationForCarPlanRemind")
    Observable<X3BaseCallModel<AdminServiceBean>> getNotificationForCarRemind(@QueryMap Map<String,Object> map);

    /**
     * 删除保养计划
     * @return
     */
    @POST("notification/deleteCarMaintenancePlan")
    Observable<X3BaseCallModel<Object>> deleteCarPlan(@Query("id")long id);

    /**
     * 获取保养计划列表
     * @return
     */
    @GET("carplan/getCarMaintenancePlanList")
    Observable<X3BaseCallModel<List<PlanListBean>>> getCarMaintenancePlanList(@Query("carId")long id);

    /**
     * 履行保养计划
     * @param id
     * @return
     */
    @POST("notification/finishCarMaintenancePlan")
    Observable<X3BaseCallModel<Object>> finishCarPlan(@Query("id")long id);

    /**
     * 获取单条保养计划详情
     * @param id
     * @return
     */
    @GET("notification/getNotificationForCarPlanRemind")
    Observable<X3BaseCallModel<AdminServiceInfoBean>> getCarPlanRemind(@Query("id")long id);

    /**
     * 编辑保养计划
     * @param infoBean
     * @return
     */
    @POST("notification/updateCarMaintenancePlan")
    Observable<X3BaseCallModel<AdminServiceInfoBean>> updateCarPlan(@Body AdminServiceInfoBean infoBean);

    /**
     * 亚马逊上传文件资源
     */
    @Multipart
    @POST("oss/multipartUpload")
    Observable<X3BaseCallModel<AwsFileBean>> uploadFileAws(@PartMap Map<String, RequestBody> requestBodyMap, @Part MultipartBody.Part file, @QueryMap Map<String,Object> map);

    /**
     *亚马逊上传文件资源  施工报告 针对 检测和施工拍照
     */
    @Multipart
    @POST("oss/multipartUpload")
    Observable<X3BaseCallModel<AwsFileBean>> uploadFileAwsForonstruction(@PartMap Map<String, RequestBody> requestBodyMap, @Part MultipartBody.Part file, @QueryMap Map<String,Object> map);

    /**
     * 获取预约通知列表
     * @param map
     * @return
     */
    @GET("notification/pageNotificationForAppointService")
    Observable<X3BaseCallModel<AdminServiceBean>> getNotificationForAppointService(@QueryMap Map<String,Object> map);

    /**
     * 获取初检信息
     * @return
     */
    @GET("mechanic/receive/getDetectionFirstInfoNew")
    Observable<X3BaseCallModel<List<List<DetectionBean>>>> getDetectionFirstInfo(@Query("receiveBaseId")int receiveBaseId, @Query("isNewVersion")boolean isNewVersion);

    /**
     * 根据系统SN获取题目
     * 初检的
     * @return
     */
    @GET("mechanic/receive/getQuestionBaseBySystemSn")
    Observable<X3BaseCallModel<List<CarTyreAloneBean>>> getQuestionSystemSn(@Query("questionToSystemSn")String questionToSystemSn, @Query("receiveBaseId")long receiveBaseId);

    /**
     * 获取轮胎品牌列表
     * @return
     */
    @GET("mechanic/receive/showTyreBrand")
    Observable<X3BaseCallModel<List<HomeColorBean>>> showTyreBrand();

    /**
     * 更新初检信息
     * @return
     */
    @POST("mechanic/receive/saveDetectionFirstInfo")
    Observable<X3BaseCallModel<Object>> saveDetectionFirestInfo(@Body List<CarTyreAloneBean> mList, @Query("receiveBaseId")long receiveBaseId);

    /**
     * 保存车主备注
     * @return
     */
    @POST("mechanic/receive/saveOrUpdateRemark")
    Observable<X3BaseCallModel<Object>> saveOrUpdateRemark(@Query("receiveBaseId")long receiveBaseId, @Body CarBodyTextBean bodyTextBean);

    /**
     * 更新或者保存进厂油量
     * @param oilValue
     * @param receiveBaseId
     * @return
     */
    @POST("mechanic/receive/saveOrUpdateOil")
    Observable<X3BaseCallModel<Object>> saveOrUpdateOil(@Query("oilValue")long oilValue, @Query("receiveBaseId")long receiveBaseId);

    /**
     * 获取物品默认清单列表
     * @return
     */
    @GET("mechanic/receive/getBrandDetectionFirstThingList")
    Observable<X3BaseCallModel<List<AloneThingBean>>> getBrandFirstThing(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 保存物品清单
     * @param receiveBaseId
     * @param
     * @return
     */
    @POST("mechanic/receive/saveOrUpdateThing")
    Observable<X3BaseCallModel<Object>> saveOrUpdateThing(@Query("receiveBaseId")long receiveBaseId, @Body List<String> thingList);

    /**
     * 校验原密码
     * @return
     */
    @GET("valid/validSystemUserPassword")
    Observable<X3BaseCallModel<Boolean>> validSystemBeforePwd(@Query("oldPassword")String oldPassword);

    /**
     * 偏好设置 修改密码
     * @param oldPassword
     * @param newPassword
     * @return
     */
    @GET("valid/updateSystemUserPassword")
    Observable<X3BaseCallModel<RegisterAndLoginBean>> updateSystemPassword(@Query("oldPassword")String oldPassword, @Query("newPassword")String newPassword);

    /**
     * 修改账号下的货币/语言/里程单位
     * 需要注意的地方是 因后台原因 label传的是value的值 而value传的label的值
     * @param label
     * @param value
     * @return
     */
    @POST("valid/updateDefaultCurrencySymbolAndMileageUnit")
    Observable<X3BaseCallModel<Object>> updateSystemInfo(@Query("label")String label, @Query("value")String value);

    /**
     * 强制结束施工
     * @return
     */
    @GET("mechanic/completeWorkBaseForce")
    Observable<X3BaseCallModel<Object>> completeWorkBaseForce(@Query("id")long id);

    /**
     * 获取Autox3级别唯一标志经AES对称加密字符串
     * @return
     */
    @GET("im/getLiveAtomicNum")
    Observable<X3BaseCallModel<LiveAtomicNumBean>> getLiveAtomicNum();

    /**
     * 返回直播所需信息。成功获取信息之后，直播信息保存24小时
     * @return
     */
    @POST("im/fetchLiveStatus")
    Observable<X3BaseCallModel<FetchLiveBean>> fetchLiveStatus(@Query("liveInfoAES")String liveInfoAES);

    /**
     * 清理直播所需信息
     * @return
     */
    @POST("im/updateLiveInfo")
    Observable<X3BaseCallModel<Object>> updateLiveStatus(@Body UpdateLiveStatusBean liveStatusBean);

    /**
     * 获取直播key 开始直播
     * @Query("liveInfoAES")String liveInfoAES,@Query("carId")int carId,
     *                                                           @Query("isCarOwnerRequired")boolean isCarOwnerRequired
     * @return
     */
    @POST("im/generateLiveInfo")
    Observable<X3BaseCallModel<LiveScanBean>> generateLiveInfo(@QueryMap Map<String,Object> map);

    /**
     * 直播搜索车辆列表
     * @return
     */
    @GET("mechanic/car/listStoreCarNum")
    Observable<X3BaseCallModel<List<LiveSelectCarBean>>> listStoreCarNum(@QueryMap Map<String,Object> map);

    /**
     * 获取店铺正在直播的房间
     * @return
     */
    @GET("im/listStoreLiveRoom")
    Observable<X3BaseCallModel<List<LiveCarListBean>>> listStoreLiveRoom();

    /**
     * 获取直播房间详情
     * @param liveRoomId
     * @return
     */
    @GET("im/getStoreLiveRoomDetail")
    Observable<X3BaseCallModel<LiveRoomDetailBean>> getStoreLiveRoomDetail(@Query("liveRoomId")int liveRoomId);

    /**
     * 获取录播房间详情
     * @param liveRoomId
     * @return
     */
    @GET("im/getHistoryLiveRoomDetail")
    Observable<X3BaseCallModel<LiveRoomDetailBean>> getHistoryLiveRoomDetail(@Query("liveRoomId")int liveRoomId);

    /**
     * 扫码后检测摄像头状态
     * @return
     */
    @POST("im/holdLiveCamera")
    Observable<X3BaseCallModel<LiveScanBean>> holdLiveCamera(@Body LiveScanBean scanBean);

    /**
     * 关闭大直播间下的所有小直播
     * @return
     */
    @POST("im/closeLiveRoom")
    Observable<X3BaseCallModel<Object>> closeLiveRoom(@Body LiveCloseBean closeBean);

    /**
     * 开启直播间缩略图
     */
    @Multipart
    @POST("im/multipartUpload")
    Observable<X3BaseCallModel<AwsFileBean>> liveUploadImg(@PartMap Map<String, RequestBody> requestBodyMap, @Part MultipartBody.Part file);

    /**
     * 解除与直播端的连接
     * @return
     */
    @POST("im/unHoldLiveCamera")
    Observable<X3BaseCallModel<Object>> unHoldLiveCamera(@Body LiveScanBean numBean);

    /**
     * 获取通知列表 询价服务项目审核
     * @return
     */
    @GET("notification/pageNotificationForServiceNonstandard")
    Observable<X3BaseCallModel<AdminServiceBean>> notificationForServiceNonstandard(@QueryMap Map<String,Object> map);

    /**
     * 获取订单未支付列表
     * @return
     */
    @GET("notification/pageNotificationForUpPay")
    Observable<X3BaseCallModel<AdminServiceBean>> notificationForUnPay(@QueryMap Map<String,Object> map);

    /**
     * 获取添加到购物车的服务列表通知
     * @return
     */
    @GET("notification/pageNotificationForAddShoppingcart")
    Observable<X3BaseCallModel<AdminServiceBean>> notificationForAddShopCart(@QueryMap Map<String,Object> map);

    /**
     * 车辆缩略图切割
     * @return
     */
    @Multipart
    @POST("mechanic/car/createCarPicTempletForCar")
    Observable<X3BaseCallModel<CarPicAndColorBean>> createCarPic(@Query("carId")long carId, @Query("carNum")String carNum, @Part MultipartBody.Part file);

    /**
     * 生成车辆码
     * @param carId
     * @return
     */
    @GET("mechanic/receive/getQrCarBefore")
    Observable<CarCodeBean> obtainCarBefore(@Query("carId") long carId);

    /**
     * 查询车辆码是否被绑定
     * @param carId
     * @return
     */
    @GET("mechanic/receive/getQrCarAfter")
    Observable<X3BaseCallModel<GetCarAfterBean>> obtainCarAfter(@Query("carId") long carId);

    /**
     * 绑定车主和车辆
     * @return
     */
    @POST("mechanic/receive/bindCarByPhone/{carId}/{areaCode}/{phoneNum}")
    Observable<X3BaseCallModel<Object>> bindCarByPhone(@Path("carId")long carId, @Path("areaCode")String areaCode,
                                                       @Path("phoneNum")String phoneNum, @Query("msgId")String msgId,
                                                       @Query("smsCode")String smsCode);

    /**
     * 创建安全检测施工单 -- 如果有未支付的接车单 receiveBaseId参数带过来,返回值为workBaseId以及receiveBaseId
     * @return
     */
    @POST("mechanic/receive/saveSafeDetectionV0908")
    Observable<X3BaseCallModel<VlideCarNumBean>> saveSafeDetection(@QueryMap Map<String,Object> map);

    /**
     * 手动添加时 - 更新出厂日期和当前里程
     * @return
     */
    @POST("mechanic/updateCarProductionAndCurrentMiles")
    Observable<X3BaseCallModel<AloneServiceListBean>> updateCarProductionAndMiles(@QueryMap Map<String,Object> map);

    /**
     * 根据车牌号判断是否有未支付的接车单 若有 返回接车单id
     * @return
     */
    @GET("mechanic/receive/validReceiveBasePayStatus")
    Observable<X3BaseCallModel<VlideCarNumBean>> validReceivePayStatus(@Query("carNum")String carNum);

    /**
     * 判断账号所在Brand是否已设置一键唤起的检测项目
     * @return
     */
    @GET("mechanic/receive/valideQuickServiceV0908")
    Observable<X3BaseCallModel<PlanListBean>> valideQuickService();

    /**
     * 获取已经上传的教学视频
     * @param type
     * @return
     */
    @POST("teachingVideo/listTeachingVideo_V210604")
    Observable<X3BaseCallModel<UseAppBean>> listTeachingVideo(@Query("type")String type);
    /*
    * 查看故障灯或者外观损伤详情@GetMapping(value = "/getDetailBySystemSn”)
    * */
    @GET("mechanic/receive/getDetailBySystemSn")
    Observable<X3BaseCallModel<DashboardWarnBean>> getDetailBySystemSn(@Query("questionToSystemSn")String questionToSystemSn, @Query("receiveBaseId")long receiveBaseId);

    /*
     *初检车辆图片识别
     */
    @Multipart
    @POST("mechanic/receive/getDetectionPictureRecognition")
    Observable<X3BaseCallModel<PictureRecognitionBean>> getDetectionPictureRecognition(@Query("carId")long carId, @Part MultipartBody.Part file, @Query("questionToSystemSn")String questionToSystemSn, @Query("receiveBaseId")long receiveBaseId);

    /*
     *初检车辆图片识别状态查询
     */
    @POST("mechanic/receive/getrecognitionStatus")
    Observable<X3BaseCallModel<PictureRecogintionResultBean>> getrecognitionStatus(@Query("questionToSystemSn")String questionToSystemSn, @Query("receiveBaseId")long receiveBaseId);

    /*
     *清空结果
     */
    @POST("mechanic/receive/deleteDetectionFirstBySystemSn")
    Observable<X3BaseCallModel<String>> deleteDetectionFirstBySystemSn(@Query("questionToSystemSn")String questionToSystemSn, @Query("receiveBaseId")long receiveBaseId);

    /*
     * 删除调用过AI识别的照片
     */
    @POST("mechanic/receive/deletePicture")
    Observable<X3BaseCallModel<String>> deletePicture(@Query("resourceId")long resourceId);

    /*
     * 更新外观损伤初检信息
     */
    @POST("mechanic/receive/saveDetectionFirstInfoNew")
    Observable<X3BaseCallModel<Object>> saveDetectionFirstInfoNew(@Body List<CarTyreAloneBean> mList, @Query("receiveBaseId")long receiveBaseId);

    /**
     * 添加留言
     * @return
     */
    @POST("mechanic/user/saveCommunicationMessages")
    Observable<X3BaseCallModel<Object>> saveCommunicationMsg(@Query("carowneruserCommunicationId")long carowneruserCommunicationId,
                                                             @Query("content")String content);

    /**
     * 获取留言列表
     * @return
     */
    @GET("notification/pageNotificationForCommunityMessages")
    Observable<X3BaseCallModel<AdminServiceBean>> pageNotificationForCommunity(@QueryMap Map<String,Object> map);

    /**
     * 获取接车单状态列表
     * @return
     */
    @GET("mechanic/receive/getReceiveBaseStatusListAndAmount")
    Observable<X3BaseCallModel<List<ReceiveStatusBean>>> getRecevieBaseStatusList();

    /**
     * 获取接车单状态列表详情页
     * @return
     */
    @GET("mechanic/receive/getReceiveBaseListByStatusId")
    Observable<X3BaseCallModel<HomeBodyItemBean>> getReceiveStatusDetailList(@QueryMap Map<String,Object> map, @Query("receiveBaseStatusId")long receiveBaseStatusId);

    /**
     * 修改接车单的状态
     * @return
     */
    @POST("mechanic/receive/updateReceiveBaseStatusByReceiveBaseId")
    Observable<X3BaseCallModel<Object>> updateReceiveStatus(@Query("receiveBaseId")long receiveBaseId, @Query("receiveBaseStatusId")long receiveBaseStatusId);

    /**
     * 接车单状态列表 除去这个接车单的状态
     * @param receiveBaseId
     * @return
     */
    @GET("mechanic/receive/getReceiveBaseStatusListExceptSelf")
    Observable<X3BaseCallModel<List<ReceiveStatusBean>>> getReceiveStatusExceptSelf(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 获取车辆排序内容
     * @return
     */
    @GET("mechanic/car/showOrderByNew")
    Observable<X3BaseCallModel<ShowCarOrderBean>> showOrderByNew();

    /**
     * 获取客户排序内容
     * @return
     */
    @GET("mechanic/user/showOrderByNew")
    Observable<X3BaseCallModel<ShowCarOrderBean>> showOrderByNewUser();


    /**
     * 车况问题
     * @return
     */
    @GET("mechanic/car/listCrmCarBodyFilterItem")
    Observable<X3BaseCallModel<List<CrmCarQuetionBean>>> listCrmCarBodyFilterItem();

    /**
     * App车辆池搜索-保养计划过滤条件
     * @return
     */
    @GET("mechanic/car/listMaintenancePlanSearchFilterItem")
    Observable<X3BaseCallModel<List<CrmCarQuetionBean>>> listMaintenancePlanSearchFilterItem();

    /**
     * 取消所有星标车辆-技师端
     * @return
     */
    @POST("followup/unSetAllCarHasMark")
    Observable<X3BaseCallModel<Object>>unSetAllCarHasMark();

    /**
     * 取消所有星标客户-技师端
     * @return
     */
    @POST("followup/unSetAllCustomerHasMark")
    Observable<X3BaseCallModel<Object>>unSetAllCustomerHasMark();

    /**
     * 发送短信 邀请车主观看直播
     * @param map
     * @return
     */
    @POST("im/sendLiveInfoToCarOwner")
    Observable<X3BaseCallModel<Object>> sendLiveInfoToCarOwner(@QueryMap Map<String,Object> map);

    /**
     * 首页工单偏好设置信息
     * @return
     */
    @GET("mechanic/user/getSystemUserPreferenceInfo")
    Observable<X3BaseCallModel<HomeSetStatusBean>> getSystemUserPreferenceInfo();

    /**
     * 修改工作页签是否可见
     * @param workTab
     * @return
     */
    @POST("mechanic/user/updateWorkTab")
    Observable<X3BaseCallModel<Object>> updateWorkTab(@Body HomeSetStatusBean.WorkTabStrBean workTab);

    /**
     * 修改是否只看我的工单
     * @return
     */
    @POST("mechanic/user/updateLookMeOnly")
    Observable<X3BaseCallModel<Object>> updateLookMeOnly(@Query("lookMeOnly")boolean lookMeOnly);

    /**
     * 修改接车单默认状态
     * @param receiveBaseStatusId
     * @return
     */
    @POST("mechanic/user/updateDefaultReceiveBaseStatus")
    Observable<X3BaseCallModel<Object>> updateDefaultReceiveBaseStatus(@Query("receiveBaseStatusId")long receiveBaseStatusId);

    /**
     * 请求待办事项的时间段
     * @return
     */
    @GET("todoList/showToDoListTime")
    Observable<X3BaseCallModel<List<CarBrandBean>>> showToDoListTime();

    /**
     * 请求未完成的待办事项
     * @param timeEnum
     * @return
     */
    @GET("todoList/mapToDoListV2")
    Observable<X3BaseCallModel<NewTaskBean>> mapToDoList(@Query("timeEnum")String timeEnum);

    /**
     * 搜索待办事项
     * @return
     */
    @GET("todoList/mapToDoListV2")
    Observable<X3BaseCallModel<NewTaskBean>> searchToDoList(@Query("keyword")String keyword, @Query("timeEnum")String timeEnum);

    /**
     * 请求已完成的待办事项
     * @param map
     * @return
     */
    @GET("todoList/pageCompleteToDoList")
    Observable<X3BaseCallModel<NewCompleteTaskBean>> mapToCompleteList(@QueryMap Map<String,Object> map);

    /**
     * 获取工艺模板List,
     */
    @GET("mechanic/getTechnicsTempletListByWorkBaseId")
    Observable<X3BaseCallModel<List<ProcessSiveTempLetBean>>> getTechnicsTempletListByWorkBaseId(@Query("id")long id);

    /**
     * 新版查看工序工艺 （标准/非标）
     *
     * @param
     * @return
     */
    @GET("mechanic/getWorkProceudreInfoByWorkBaseIdAndTechnicSn_20211015")
    Observable<X3BaseCallModel<ProcessNewBean>> getWorkProceudreInfoByWorkBaseIdAndTechnicSn(@Query("serviceBaseSnList[]") String[] serviceBaseSnList, @Query("technicTempletSn") String technicTempletSn, @Query("id") long id);

    /**
     * 待办事项 添加快捷短语
     * @return
     */
    @POST("todoList/saveMyShortStr")
    Observable<X3BaseCallModel<Object>> saveMyShortStr(@Query("shortStr")String shortStr);

    /**
     * 获取待办事项 我的快捷短语列表
     * @return
     */
    @GET("todoList/listMyShortStr")
    Observable<X3BaseCallModel<List<String>>> listMyShortStr();

    /**
     * 删除我的快捷短语
     * @param shortStr
     * @return
     */
    @POST("todoList/delMyShortStr")
    Observable<X3BaseCallModel<Object>> delMyShortStr(@Query("shortStr")String shortStr);

    /**
     * 获取检测报告列表
     * @return
     */
    @GET("mechanic/getDetectionWorkBaseList")
    Observable<X3BaseCallModel<List<AloneDetectionBean>>> getDetectionList(@Query("carId")long carId);

    /**
     * 从检测报告中提取图片
     * @param map
     * @return
     */
    @GET("mechanic/getResourceListFromDetection")
    Observable<X3BaseCallModel<DetectionImageBean>> getResourceListFromDetection(@QueryMap Map<String,Object> map);

    /**
     * 从施工报告中提取图片
     * @param map
     * @return
     */
    @GET("mechanic/getResourceListFromWorkProcedure")
    Observable<X3BaseCallModel<DetectionImageBean>> getResourceListFromWorkProcedure(@QueryMap Map<String,Object> map);

    /**
     * 保存施工详情
     */
    @POST("mechanic/saveWorkProceudreInfo")
    Observable<X3BaseCallModel<Object>> saveWorkProceudreInfo(@Body ProcessNewBean processNewBean);

    /**
     * 客户池搜索
     * @return
     */
    @POST("search/crmClientSearch")
    Observable<X3BaseCallModel<CrmCustomSearchBean>> crmClientSearch(@Body CrmSearchBean searchBean);

    /**
     * 车辆池搜索
     * @return
     */
    @POST("search/crmSearch")
    Observable<X3BaseCallModel<CrmCarSearchBean>> crmCarSearch(@Body CrmSearchBean searchBean);

    /**
     * 车辆池搜索更多
     * @return
     */
    @POST("search/crmSearchMore")
    Observable<X3BaseCallModel<CrmMoreBean>> crmSearchMore(@Body CrmSearchBean searchBean);

    /**
     *猜你推荐测服务项目 -- 根据检测点id和选项id 查询可能的服务项目
     */
    @GET("mechanic/getServiceBaseListLike")
    Observable<X3BaseCallModel<List<TestRecommendBean>>> getServiceBaseListLike(@Query("questionBaseId")long questionBaseId, @Query("questionOptionId")long questionOptionId, @Query("workBaseId")long workBaseId);

    /**
     * 我的检测统计排行
     * @return
     */
    @GET("mechanic/getDetectionRankInfo")
    Observable<X3BaseCallModel<DetectionRankInfo>> getDetectionRankInfo();

    /**
     * 查看有效检测及常见异常
     * @return
     */
    @GET("mechanic/getDetailByCarBrandAndQuestion")
    Observable<X3BaseCallModel<DetailByCarBrandAndQuestionBean>> getDetailByCarBrandAndQuestion();

    /**
     * 获取国内排名 分页
     * @return
     */
    @GET("mechanic/pageDetectionRank")
    Observable<X3BaseCallModel<DetectionRankBean>> getDetectionRank(@QueryMap Map<String,Object> map);

    /**
     * 获取全球排名 分页
     * @return
     */
    @GET("mechanic/pageDetectionRankOfWorld")
    Observable<X3BaseCallModel<DetectionRankBean>> getDetectionRankWorld(@QueryMap Map<String,Object> map);


    /**
     * 根据vin调用力扬搜索品牌数据
     * @return
     */
    @POST("mechanic/receive/vinToCarType")
    Observable<X3BaseCallModel<VinResultBean>> vinToCarType(@Query("vin") String vin);
    /*   /im/generateLiveInfoOnLocal
     * 生成直播所需信息 (本机开播)
     */
    @POST("im/generateLiveInfoOnLocal")
    Observable<X3BaseCallModel<FetchLiveBean>> generateLiveInfoOnLocal(@Query("carId")long carId, @Query("isCarOwnerRequired")boolean isCarOwnerRequired, @Query("workBaseId")long workBaseId);

    /**
     *
     * 直播  上传视频
     */
    @Multipart
    @POST("im/multipartUpload")
//    @POST("test/uploadMock")
    Observable<X3BaseCallModel<AwsFileBean>> uploadVideo(@PartMap Map<String, RequestBody> requestBodyMap, @Part MultipartBody.Part file);

    /**
     *
     * 直播  上传视频
     */
    @POST("im/generateLiveInfoByUploadVideo")
    Observable<X3BaseCallModel<GenerateLiveBean>> generateLiveInfoByUploadVideo(@Query("carId")long carId, @Query("isCarOwnerRequired")boolean isCarOwnerRequired, @Query("resourceId")long resourceId , @Query("workBaseId")long workBaseId);

    /**
     * /im/listLiveUploadVideo
     * 获取直播上传的视频
     */
    @GET("im/listLiveUploadVideo")
    Observable<X3BaseCallModel<List<UploadVideoBean>>> listLiveUploadVideo(@Query("workBaseId")long workBaseId);

    /**
     * /im/deleteUploadLiveVideo
     * 删除上传的直播视频
     */
    @POST("im/deleteUploadLiveVideo")
    Observable<X3BaseCallModel<Object>> deleteUploadLiveVideo(@Body DeleteVideoBean deleteVideoBean);

    /**
     * 发送报告前 判断车辆是否已绑定车主 若绑定 返回车主手机号
     * @param workBaseId
     * @return
     */
    @GET("detection/getCarOwnerUserMobile")
    Observable<X3BaseCallModel<String>> getCarOwnerUserMobile(@Query("workBaseId")long workBaseId);

    /**
     * 发送报告
     * @param
     * @return
     */
    @POST("detection/sendReport")
    Observable<X3BaseCallModel<Object>> sendReport(@Query("mobile")String mobile, @Query("workBaseId")long workBaseId);

    /**
     * 发送施工报告
     * @param workBaseId
     * @return
     */
    @POST("detection/sendWorkReport")
    Observable<X3BaseCallModel<Object>> sendWorkReport(@Query("mobile")String mobile, @Query("workBaseId")long workBaseId);


    /**
     * 获取语言设置
     * @return
     */
    @GET("translate/api-v1/i18nFile/android")
    Observable<X3BaseCallModel<Map<String,Object>>> getLanguageSet(@Query("language")String language, @Query("platformId")int platformId);

    /**
     * 修改施工模式
     * @param workModel
     * @return
     */
    @POST("mechanic/user/updateWorkModel")
    Observable<X3BaseCallModel<Object>> updateWorkModel(@Query("workModel")String workModel);

    /**
     * 搜索车牌接口
     * @param map
     * @return
     */
    @GET("mechanic/car/listStoreCarNumReceive")
    Observable<X3BaseCallModel<List<LiveSelectCarBean>>> listStoreCarNumReceive(@QueryMap Map<String,Object> map);

    /**
     * 查询门店所有车牌
     * @param
     * @return
     */
    @GET("mechanic/car/listStoreAllCarNum")
    Observable<X3BaseCallModel<CarPoolMainBean>> listStoreAllCarNum();

    /**
     * 本月或下月到期保养计划列表 type表示显示方式1按车辆展示2按保养计划展示默认1。monthType 1表示本月 2表示下月 默认本月
     * @param map
     * @return
     */
    @GET("mechanic/car/listCarMaintencePlan")
    Observable<X3BaseCallModel<List<PlanListBean>>> listCarMaintencePlan(@QueryMap Map<String,Object> map);

    /**
     * 发送保养计划前获取预览信息
     * @param carId
     * @return
     */
    @GET("mechanic/car/sendCarMaintenceReportBefore")
    Observable<X3BaseCallModel<String>> sendCarMaintenceReportBefore(@Query("carId")long carId);

    /**
     * 发送保养计划
     * @param carId
     * @return
     */
    @POST("mechanic/car/sendCarMaintenceReport")
    Observable<X3BaseCallModel<Object>> sendCarMaintenceReport(@Query("carId")long carId, @Query("mobile")String mobile);

    /**
     * 某个车辆的本月或下月到期的保养计划列表
     * @param carId
     * @param monthType
     * @return
     */
    @GET("mechanic/car/getCarMaintencePlanListByCarId")
    Observable<X3BaseCallModel<List<PlanListBean>>> getCarMaintencePlanListByCarId(@Query("carId")long carId, @Query("monthType")int monthType);

    /**
     * 某个保养计划的车辆列表
     * @param serviceBaseSn
     * @param monthType
     * @return
     */
    @GET("mechanic/car/getCarMaintencePlanListByServiceBaseSn")
    Observable<X3BaseCallModel<List<PlanListBean>>> getCarMaintencePlanListByServiceBaseSn(@Query("serviceBaseSn")String serviceBaseSn, @Query("monthType")int monthType);

    /**
     * 删除保养维修计划
     * @param id
     * @return
     */
    @POST("notification/deleteCarMaintenancePlan")
    Observable<X3BaseCallModel<Object>> deleteCarMaintenancePlan(@Query("id")long id);

    /**
     * 履行保养计划
     * @param id
     * @return
     */
    @POST("notification/finishCarMaintenancePlan")
    Observable<X3BaseCallModel<Object>> finishCarMaintenancePlan(@Query("id")long id);

    /**
     * 编辑保养维修计划
     * @return
     */
    @POST("notification/updateCarMaintenancePlan")
    Observable<X3BaseCallModel<Object>> updateCarMaintenancePlan(@Body PlanListBean listBean);

    /**
     * 查询当前账号有效期天数和客服电话
     * @return
     */
    @GET("mechanic/getRemaindValidityDaysAndMobile")
    Observable<X3BaseCallModel<MainDaysAndMobileBean>> getRemaindValidityDaysAndMobile();

    /**
     * 获取店铺车辆品牌图标接口
     * @return
     */
    @POST("mechanic/car/listStoreCarIcon")
    Observable<X3BaseCallModel<List<String>>> listStoreCarIcon(@Body List<String> list);

    /**
     * 获取精检推荐服务集合
     * @return
     */
    @GET("mechanic/getDetectionTouchServiceListGroupByQuestionBase")
    Observable<X3BaseCallModel<List<AloneServiceNewBean>>> getTouchServiceList(@Query("workBaseId")long workBaseId);

    /**
     * 获取检测题目触发服务项目列表-购物车以检测点聚合
     * @return
     */
    @POST("mechanic/delDetectionTouchServiceByQuestionBaseIdAndDetectionTouchService")
    Observable<X3BaseCallModel<Object>> delDetectionService(@Query("detectionTouchServiceId")long detectionTouchServiceId, @Query("questionBaseId")long questionBaseId, @Query("workBaseId")long workBaseId);

    /**
     * 清空购物车
     * @return
     */
    @POST("mechanic/delAllTouchService")
    Observable<X3BaseCallModel<Object>> delAllTouchService(@Query("workBaseId")long workBaseId);

    /**
     * 清空购物车
     * @return
     */
    @POST("mechanic/updateDetectionTouchServiceSingle")
    Observable<X3BaseCallModel<Object>> updateDeService(@Body AloneServiceListBean bean);

    /**
     *     技师APP - 机会 - 车辆详情页 - 获取车辆可选择的服务项目
     * @return
     */
    @GET("carplan/getServiceListByCarId_V210707")
    Observable<X3BaseCallModel<NewServiceHeaderBean>> getServiceListByCarId(@Query("carId") long carId);

    /**
     *     技师APP - 机会 - 车辆详情页 - 添加保养/维修计划
     * @return
     */
    @POST("carplan/saveCarMaintenancePlan_V210707")
    Observable<X3BaseCallModel<Object>> saveCarMaintenancePlan(@Body NewServiceHeaderBean bean);

    /**
     *    技师APP - 机会 - 车辆详情页 - 获取车辆可选择的服务项目--搜索
     * @return
     */
    @GET("carplan/searchServiceByCarId_V210707")
    Observable<X3BaseCallModel<List<NewServiceHeaderBean.AlreadyInPlanListBean>>> searchServiceByCarId(@Query("carId") long carId , @Query("keyword") String keyword);

    /**
     *获取在线时长的token
     * @return
     */
    @GET("heartbeat/getHeartbeatToken")
    Observable<X3BaseCallModel<HeartBeatTokenBean>> getHeartBeatToken();

    /**
     *搜索-服务项目列表
     * @return
     */
    @POST("search/listServiceBaseByCategory")
    Observable<X3BaseCallModel<List<ServiceHeaderBean.ShopCategoryEntityBean.ServiceBaseEntityBean>>> listServiceBaseByCategory(@Body SearchBean searchBean);

    /**
     * 拍照自定义标签--获取检测项下的检测点
     * @param questionDetectionTempletItemId
     * @return
     */
    @GET("mechanic/getQuestionBaseListByTempletItemId")
    Observable<X3BaseCallModel<List<TagDetectionBean>>> getQuestionBaseListByTempletItemId(@Query("questionDetectionTempletItemId")long questionDetectionTempletItemId);

    /**
     * 获取施工报告截图所需数据集
     * @param workBaseId
     * @return
     */
    @GET("detection/getWorkReportInfoForShare")
    Observable<X3BaseCallModel<WorkCaptureBean>> getWorkReportInfoForShare(@Query("workBaseId")int workBaseId);

    /**
     * 获取接车单详情
     * @param receiveBaseId
     * @return
     */
    @GET("mechanic/receive/getReceiveBaseForMechanic")
    Observable<X3BaseCallModel<ServiceInfoBean>> getReceiveBaseForMechanic(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 获取门店所有技师的列表
     * @return
     */
    @GET("mechanic/receive/listStoreStaffBase")
    Observable<X3BaseCallModel<List<StaffListBean>>> listStoreStaffBase();

    /**
     * 生成施工单
     * @param map
     * @param staffBaseIdList
     * @return
     */
    @POST("order/saveWorkBaseV0823")
    Observable<X3BaseCallModel<SaveWorkSuccessBean>> saveWorkBase(@QueryMap Map<String,Object> map, @Body List<Long> staffBaseIdList);

    /**
     * 确定服务变体
     * @param receiveBaseId
     * @return
     */
    @POST("order/saveOrDeleteReceiveService")
    Observable<X3BaseCallModel<ServiceInfoBean.WorkBaseBean>> saveOrDeleteReceiveVariantForStandard(@Query("receiveBaseId")long receiveBaseId, @Body List<String> serviceBaseSnList);

    /**
     * 根据一级类目 二级类目获取服务项目
     * @param map
     * @return
     */
    @GET("order/getServiceBaseListInfoForWorkV2")
    Observable<X3BaseCallModel<List<SelectWorkBean>>> getServiceBaseListInfoForWork(@QueryMap Map<String,Object> map);

    /**
     * 获取接车单服务步序图
     * @return
     */
    @GET("mechanic/receive/mapReceiveGraphAndReceiveBaseAndEdaijiaBusinessStatus")
    Observable<X3BaseCallModel<MapReceiveStatusBean>> mapReceiveListStatus(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 在大屏上打开报告
     * @param workBaseId
     * @return
     */
    @GET("mechanic/openReportOnHub")
    Observable<X3BaseCallModel<Object>> openReportOnHub(@Query("workBaseId")long workBaseId);

    /**
     * 刷新大屏是否打开报告的结果
     * @param workBaseId
     * @return
     */
    @GET("mechanic/getOpenReportStatus")
    Observable<X3BaseCallModel<Integer>> getOpenReportStatus(@Query("workBaseId")long workBaseId);

    /**
     * 获取专属技师
     * @return
     */
    @GET("mechanic/receive/listFollowupMechanicForCarOwnerUser")
    Observable<X3BaseCallModel<List<AddStaffBean>>> listFollowupMechanicForCarOwnerUser(@Query("carId")long carId);

    /**
     * 绑定或者解绑专属服务顾问
     * @param carId
     * @param staffBaseIdList
     * @return
     */
    @POST("mechanic/receive/reverseAddFollowup")
    Observable<X3BaseCallModel<Object>> reverseAddFollowup(@Query("carId")long carId,@Body List<Long> staffBaseIdList);

    /**
     * 关闭接车单
     * @param receiveBaseId
     * @return
     */
    @GET("order/closeReceiveBase")
    Observable<X3BaseCallModel<Object>> closeReceiveBase(@Query("receiveBaseId")long receiveBaseId);

    /**
     * 获取未提交的检测点
     * @param workBaseId
     * @return
     */
    @GET("mechanic/getUnCompleteQuestionList")
    Observable<X3BaseCallModel<List<UnCompleteBean>>> getUnCompleteQuestionList(@Query("workBaseId")long workBaseId);

    /**
     * 获取技师app偏好设置
     * @return
     */
    @GET("mechanic/getBrandMechConfig")
    Observable<X3BaseCallModel<BrandMechanicBean>> getBrandMechConfig();

    /**
     * 覆盖安排施工人员
     * @param workBaseId
     * @param staffBaseIdList
     * @return
     */
    @POST("mechanic/receive/assignWorkStaff")
    Observable<X3BaseCallModel<Object>> assignWorkStaff(@Query("workBaseId")long workBaseId,@Body List<Long> staffBaseIdList);

    /**
     * 在大屏上开始录屏
     * @param workBaseId
     * @return
     */
    @POST("mechanic/recordingScreenOnHub")
    Observable<X3BaseCallModel<Object>> recordingScreenOnHub(@Query("workBaseId")long workBaseId);

    /**
     * 获取大屏是否开始录屏
     * @param workBaseId
     * @return
     */
    @GET("mechanic/getRecordingScreenStatus")
    Observable<X3BaseCallModel<Integer>> getRecordingScreenStatus(@Query("workBaseId")long workBaseId);

    /**
     * 修改施工时间
     * @param map
     * @param staffBaseIdList
     * @return
     */
    @POST("mechanic/receive/updateWorkBaseTime")
    Observable<X3BaseCallModel<Object>> updateWorkBaseTime(@QueryMap Map<String,Object> map,@Body List<Long> staffBaseIdList);

    /**
     * 查看施工单信息
     * @param id
     * @return
     */
    @GET("mechanic/receive/getWorkBase")
    Observable<X3BaseCallModel<ServiceInfoBean.WorkBaseBean>> getWorkBase(@Query("id")long id);

    /**
     * 获取保养计划
     * @return
     */
    @GET("maintenance/listMaintenanceServcieByCarId")
    Observable<X3BaseCallModel<ArrayList<MainTainPlanBean>>> listMaintenanceServcieByCarId(@Query("carId")long carId);

    /**
     * 获取初检
     * @return
     */
    @GET("mechanic/receive/getDetectionFirstInfo_V0915")
    Observable<X3BaseCallModel<List<DetectionNewBean>>> getDetectionFirstInfo(@Query("receiveBaseId")long receiveBaseId,@Query("sign")boolean sign);

    /**
     * 根据系统SN获取题目
     * 初检的
     * @return
     */
    @GET("mechanic/receive/getQuestionBaseBySystemSn_V0915")
    Observable<X3BaseCallModel<QuesSystemSnBean>> getNewQuestionSystemSn(@QueryMap Map<String,Object> map);

    /**
     * 保存初检信息
     * @param itemEntityList
     * @return
     */
    @POST("mechanic/receive/saveDetectionFirstInfoNew_V0915")
    Observable<X3BaseCallModel<Object>> saveDetectionFirstInfo(@Body List<DetectionNewBean> itemEntityList,@Query("receiveBaseId")long receiveBaseId);

    /*
     * 原厂保养计划记录保养时间
     * @return
     */
    @POST("maintenance/updateMaintenanceServcie")
    Observable<X3BaseCallModel<Object>> updateMaintenanceServcie(@Body UpdateMainTainPlan bean);

    /**
     * 获取胎纹检测获取到的车牌号
     * @return
     */
    @GET("mechanic/receive/listTyreDetectionCarNum")
    Observable<X3BaseCallModel<List<LiveSelectCarBean>>> listTyreDetectionCarNum();

    /**
     * 搜索车款
     * @return
     */
    @GET("mechanic/receive/showAllCarStyle")
    Observable<X3BaseCallModel<List<CarStyleBean>>> showAllCarStyle(@Query("keyword")String keyword);

    /**
     * 获取拍照顺序
     * @return
     */
    @GET("profile/getCheckQuestionSet")
    Observable<X3BaseCallModel<Object>> getCheckQuestionSet();

    /**
     * 更新拍照顺序
     * @return
     */
    @POST("profile/updateCheckQuestionSet")
    Observable<X3BaseCallModel<Object>> updateCheckQuestionSet(@Query("photoFirst")boolean photoFirst);

    /**
     * 获取检测点的常用评论
     * @return
     */
    @GET("mechanic/showCommonComments")
    Observable<X3BaseCallModel<List<String>>> showCommonComments(@Query("questionBaseId")long questionBaseId);

    /**
     * 获取快速选择施工项目
     * @return
     */
    @GET("order/getDetectionList")
    Observable<X3BaseCallModel<List<DoneDetectionBean>>> getDoneDetectionList(@Query("receiveBaseId")long questionBaseId);

    /**
     * 测速接口
     * @return
     */
    @GET("network/networkDetection")
    Observable<X3BaseCallModel<CheckNetBean>> networkDetection();

}

